草庐IT

C++ ifstream 到 char *

全部标签

c++ - constexpr 连接两个或多个 char 字符串

我正在尝试创建一个constexpr函数,该函数将连接任意数量的char数组,方法是根据Xeo的以下答案进行操作,该答案连接两个char数组。https://stackoverflow.com/a/13294458/1128289#includetemplatestructseq{};templatestructgen_seq:gen_seq{};templatestructgen_seq:seq{};templateconstexprstd::arrayconcat(charconst(&a1)[N1],charconst(&a2)[N2],seq,seq){return{{a1[I

c++ - 如何在 C++ 中将 unsigned char[] 打印为 HEX?

我想打印以下散列数据。我应该怎么做?unsignedcharhashedChars[32];SHA256((constunsignedchar*)data.c_str(),data.length(),hashedChars);printf("hashedChars:%X\n",hashedChars);//doesn'tseemtowork?? 最佳答案 十六进制格式说明符需要一个整数值,但您提供的是char数组。您需要做的是将char值单独打印为十六进制值。printf("hashedChars:");for(inti=0;i由于

c++ - `char16_t` 和 `char32_t` 是用词不当吗?

注意:我敢肯定有人会说这是主观的,但我认为它是相当有形的。C++11给了我们新的basic_string类型std::u16string和std::u32string,为std::basic_string输入别名和std::basic_string,分别。子串的使用"u16"和"u32"在这种情况下对我来说更像是暗示“UTF-16”和“UTF-32”,这很愚蠢,因为C++当然没有文本编码的概念。名称实际上反射(reflect)了字符类型char16_t和char32_t,但这些似乎命名不当。它们是无符号的,因为它们的基础类型是无符号的:[C++11:3.9.1/5]:[..]Types

c++ - char 数组的 cin 和 cin.get() 之间的区别

我有这两个代码:chara[256];cin>>a;cout和chara[256];cin.get(a,256);cin.get();cout也许,相对于没有cin.get()的第二个;chara[256];cin.get(a,256);cout我的问题是(第一个):对于字符数组,我应该使用什么?cin或cin.get()?为什么我应该使用cin.get();我的char初始化后没有参数?我的第二个问题是:我的C++老师教我每次使用cin.get()进行初始化字符,并在每次初始化char数组或int数组或只是int或其他任何东西之后,再次将cin.get();在它之后。这就是我最初想问

c++ - 使用 memcpy() 函数将字节从 unsigned char 数组放入 std::string

我有std::string变量。我需要将一些字节从无符号字符数组中放入它。我知道第一个字节和长度。我可以使用std::string::assign函数。我已经做到了。但我想使用memcpy函数以正确的方式解决这个问题。std::stringnewString;memcpy(&newString,&bytes[startIndex],length);我知道这是错误的。我研究并发现了一些使用std::vector的想法。请帮助我为这个问题找到最优雅的解决方案。 最佳答案 因为我们只是构造字符串,所以有一个std::string采用两个迭

c++ - int main(int argc, char** argv)

这个问题在这里已经有了答案:关闭11年前。Duplicate:Whatistheproperdeclarationofmain?main函数中的参数是什么意思?他们想告诉我们什么?intmain(intargc,char**argv)更新:而且,前面的代码行是否类似于此intmain(intargc,char*argv[])?如果是这样,我们怎么能说char**argv与char*argv[]相似,因为它们在数组中看起来并不相似观点?它与没有任何参数的intmain()相比如何?谢谢。

c++ - 定义char和int时指针有什么区别?

我了解指针工作原理的基础知识,但下面的示例让我感到困惑。int*myNum=10;//Producesanerrorchar*myChar="Something";//Worksfine为什么分配char有效但整数无效(可能是因为char被视为数组)?还有,直接给指针变量赋值的时候我很困惑,它会自动获取地址吗?char*myChar="Something";和charmyChar="Something";char*charAddr=&myChar;这里有什么区别,或者等于? 最佳答案 "Something"本质上是以下内容的缩写:s

c++ - 将 std::vector<char> 截断为长度 N 以释放内存的有效方法

我有几个大的std::vectorsofchars(从二进制文件加载的字节)。当我的程序内存不足时,我需要能够剔除这些vector使用的一些内存。这些vector几乎是我所有的内存使用量,它们只是本地和网络文件的缓存,所以只抓取最大的一个并将其切成两半左右是安全的。唯一的问题是,我目前正在使用vector::resize和vector::shrink_to_fit,但这似乎需要更多的内存(我想是为了重新分配新的大小)然后是一堆时间(为了销毁现在被销毁的指针,我认为它是免费的?)然后将剩余的复制到新vector。请注意,这是在Windows平台上进行调试,因此指针可能不会在发布版本或其他

c++ - GTest 和 GoogleMock EXPECT_CALL 在 Windows 中失败,在 Mac 上通过 char * param

我在我继承的一个项目中有一个看起来与此类似的测试std::stringvalue("teststring");constchar*buffer=value.c_str();EXPECT_CALL(object,foo(_,_,buffer,buffer.size(),_)).WillOnce(Return(0));bar(value);缓冲区是一个char*指向一串数据。我插入了像对象这样的虚拟值,只是为了关注似乎在使用EXPECT_CALL时出现的问题。在此EXPECT_CALL之后,调用方法bar将原始字符串值作为参数,然后在该方法中使用从原始字符串值构建的缓冲区调用foo。此测试

c++ - 如何计算 char 数组中元素的数量?

我试图计算数组中元素的数量,并被告知该行intr=sizeof(array)/sizeof(array[0])会给我数组中元素的数量。而且我发现该方法确实有效,至少对于int数组。然而,当我尝试这段代码时,一切都崩溃了。#include#includeusingnamespacestd;intmain(){charbinaryPath[MAX_PATH];GetModuleFileName(NULL,binaryPath,MAX_PATH);cout当这个程序运行时binaryPath的值为C:\Users\Anish\workspace\CppSync\Debug\CppSync.e